#' Coletar produção legislativa de parlamentares do Senado
#'
#' Esta função consulta a API de Dados Abertos do Senado Federal para coletar
#' toda a produção legislativa (requerimentos, PECs, etc.) de uma lista de
#' parlamentares a partir de seus códigos identificadores.
#'
#' @param lista_ids Vetor numérico com os códigos dos parlamentares (ex: c(5985, 5522)).
#'
#' @return Um \code{data.frame} com as proposições legislativas associadas aos parlamentares.
#'
#' @examples
#' \dontrun{
#' ids <- c(5985, 5522)
#' dados <- coletar_producao_legislativa(ids)
#' head(dados)
#' }
#'
#' @import httr
#' @import jsonlite
#' @import dplyr
#' @import purrr
#' @export
coletar_producao_legislativa <- function(lista_ids) {
  purrr::map_dfr(lista_ids, function(codigo_parlamentar) {
    url <- paste0("https://legis.senado.leg.br/dadosabertos/processo?codigoParlamentarAutor=", codigo_parlamentar, "&v=1")
    resp <- httr::GET(url)
    
    if (httr::status_code(resp) != 200) {
      message("Erro na requisição: status ", httr::status_code(resp), " — ID ", codigo_parlamentar)
      return(NULL)
    }
    
    txt <- httr::content(resp, "text", encoding = "UTF-8")
    df <- jsonlite::fromJSON(txt, flatten = TRUE, simplifyDataFrame = TRUE)
    
    if (is.data.frame(df) && nrow(df) > 0) {
      dplyr::mutate(df, codigoParlamentarAutor = codigo_parlamentar, .before = 1)
    } else {
      message("Nenhum dado estruturado retornado — ID ", codigo_parlamentar)
      return(NULL)
    }
  })
}



